package it.unipd.dei.bd.icineasti.servlet.admin;

import it.unipd.dei.bd.icineasti.servlet.AbstractDatabaseServlet;

import it.unipd.dei.bd.icineasti.database.DeleteSalaDatabase;
import it.unipd.dei.bd.icineasti.database.DeletePoltroneInSalaDatabase;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Servlet per il lato amministrativo.
 * 
 * Prima verifica che l'utente sia loggato come amministratore,
 * in seguito prova ad eliminare le poltrone relative alla sala.
 * 
 * Se non incorre in errori (le poltrone non hanno dipendenze 
 * con altri elementi del db) elimina anche la sala.
 * 
 * @author Bardelle Renzo
 * @version 1.00
 */

public class DeleteSalaServlet extends AbstractDatabaseServlet {

	public void doGet(HttpServletRequest req, HttpServletResponse res)
			throws ServletException, IOException {
		
		HttpSession session = req.getSession(true);
		
		res.setContentType("text/html");

		PrintWriter out = res.getWriter();

		Connection con = null;
		
		if(session.getAttribute("amministrativo") != null )
		{
			boolean executionStatus=true;
			int idsala=Integer.parseInt(req.getParameter("idsala"));
			
			try {
				con = DS.getConnection();

				new DeletePoltroneInSalaDatabase(con, idsala).deletePoltrone();
				
				out.println("<p><font color=\"green\" size=\"+2\">Poltrone eliminate con successo!</font></p>");
				
			} catch (NullPointerException ex) {
				out.printf("<p><font color=\"red\" size=\"+2\">Impossibile creare la connessione al database per eliminare le poltrone.</font></p>");
				executionStatus=false;
			} catch (SQLException ex) {
				out.printf(
						"<p><font color=\"red\" size=\"+2\">Errore durante l'eliminazione delle poltrone: %s</font></p>",
						ex.getMessage());
				executionStatus=false;
			}
			
			if(executionStatus)
				try {
					con = DS.getConnection();

					new DeleteSalaDatabase(con, idsala).deleteSala();
				
					out.println("<p><font color=\"green\" size=\"+2\">Sala eliminata con successo!</font></p>");
				
				} catch (NullPointerException ex) {
					out.printf("<p><font color=\"red\" size=\"+2\">Impossibile creare la connessione al database per eliminare la sala.</font></p>");
				} catch (SQLException ex) {
					out.printf(
							"<p><font color=\"red\" size=\"+2\">Errore durante l'eliminazione della sala: %s</font></p>",
							ex.getMessage());
				}
		}
		else
		{
			out.println("<p><font color=\"red\" size=\"+2\">Non hai i privilegi di amministrazione quindi non puoi modificare il database.</font></p>");
			out.flush();
			out.close();
		}
	}
}
